//实现call
function person(a, b, c, d) {
    return {
        name: this.name,
        a: a, b: b, c: c, d: d
    }
}

var egg = {name: 'jueyi'};

Function.prototype.newApply = function (obj, arr) {

    var obj = obj || global, result;
    obj.p = this;
    if (!arr) {
        result = obj.p();
    } else {
        result = obj.p(...arr);
    }

    delete obj.p;
    return result;
};

// let res = person.newApply(egg, ["点赞", "收藏", "转发", "关注"]);
let res = person.newApply(null, ["点赞", "收藏", "转发", "关注"]);
console.log(res);